package com.chinda.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.chinda.common.enums.UserStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;


/**
 * 系统用户
 *
 * @author chinda
 * @date 2021-06-16 05:52:51
 */
@Getter
@Setter
@TableName("sys_user")
public class SysUserEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId
    @ApiModelProperty(value = "主键")
    private Long userId;
    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    private String username;
    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    private String password;
    /**
     * 盐
     */
    @ApiModelProperty(value = "盐")
    private String salt;
    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String email;
    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    private String mobile;
    /**
     * 状态 PROHIBIT：禁用   NORMAL：正常
     */
    @ApiModelProperty(value = "状态 PROHIBIT：禁用   NORMAL：正常")
    private UserStatusEnum status;
    /**
     * 账户是否过期
     */
    @ApiModelProperty(value = "账户是否过期")
    private Boolean isAccountNonExpired;
    /**
     * 证书是否过期
     */
    @ApiModelProperty(value = "证书是否过期")
    private Boolean isCredentialsNonExpired;
    /**
     * 账户是否锁定
     */
    @ApiModelProperty(value = "账户是否锁定")
    private Boolean isAccountNonLocked;
    /**
     * 账户是否有效
     */
    @ApiModelProperty(value = "账户是否有效")
    private Boolean isEnabled;
    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private Date createDate;
    /**
     * 修改人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "修改人")
    private String modifyBy;
    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "修改时间")
    private Date modifyDate;
    /**
     * 删除标记  -1：已删除  0：正常
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "删除标记  -1：已删除  0：正常")
    private Integer del;
    /**
     * 版本号
     */
    @Version
    @ApiModelProperty(value = "版本号")
    private Integer version;

}
